package com.jt.controller;

import com.jt.pojo.User;
import com.jt.service.UserService;
import com.jt.vo.PageResult;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@CrossOrigin
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/findAll")
    public List<User> findAll(){

        return userService.findAll();
    }
    @PostMapping("/login")
public SysResult login(@RequestBody User user){
        String token=userService.login(user);
        if (token==null){
            return SysResult.fail();
        }
        return SysResult.success(token);
}
@GetMapping("/list")
public SysResult getuserlist(PageResult pageResult){
       pageResult= userService.getuserlist(pageResult);
       return SysResult.success(pageResult);
}
//    请求路径: /user/list
//    请求类型: GET
//    请求参数: 后台使用PageResult对象接收
//    请求案例: http://localhost:8091/user/list?query=查询关键字&pageNum=1&pageSize=10
//@GetMapping("/list")
//    public SysResult getuserlist2(PageResult pageResult){
//        pageResult=userService.getuserlist(pageResult);
//        return SysResult.success(pageResult);
//    }
//    请求路径 /user/status/{id}/{status}
//    请求类型 PUT
//    请求参数: 用户ID/状态值数据
    @PutMapping("/status/{id}/{status}")
    public SysResult findstatus(User user){
        userService.uptatestatus(user);
        return SysResult.success();

    }
//    请求路径 /user/addUser
//    请求类型 POST
//    请求参数: 整个form表单数据封装为js对象进行参数传递
    //返回值结果: SysResult对象
    @PostMapping("/addUser")
    public SysResult insertUser(@RequestBody User user){
        userService.insertuser(user);
        return SysResult.success();
    }
//    根据ID查询用户信息
//    请求路径: /user/{id}
//    请求类型: GET
//    返回值: SysResult对象
    @GetMapping("/{id}")
    public SysResult xiugai(@PathVariable Integer id){
      User user=  userService.xiugaiuser(id);
        return SysResult.success(user);
    }
//    根据用户ID更新数据
//    请求路径: /user/updateUser
//    请求类型: PUT
//    请求参数: User对象结构
    //返回值: SysResult对象
    @PutMapping("/updateUser")
public SysResult updateddate(@RequestBody User user){
        userService.upatatate(user);
        return SysResult.success();
}
//    请求路径: /user/{id}
//    请求类型: delete
//    请求参数:
//    参数名称	参数说明	备注
//    ID	用户ID号	不能为null
//    返回值: SysResult对象
    @DeleteMapping("/{id}")
    public SysResult deleteuser(@PathVariable Integer id){
        userService.deleteuser(id);
        return  SysResult.success();

    }

}
